module command.StartAppCommand;

// import std.stdio;

// import std.string;
// import hunt.console.helper.QuestionHelper;
// import hunt.console.input.Input;
// import hunt.console.input.InputArgument;
// import hunt.console.output.Output;
// import hunt.console.question.Question;
// import hunt.console.command.Command;
// import std.file;
// import hunt.util.Serialize;
// import config.ConfigurationDefine;
// import hunt.logging;
// import msgtrans;
// import message.Constants;
// import core.thread;
// import bootstrap.DatabaseBootstrap;


// class StartAppCommand : Command
// {
//   enum string configPath = "./config_test.json";

//   private LogicConfig _config;

//   override protected void configure()
//   {
//     this
//     .setName("start")
//     .setDescription("Outputs a start.")
//     .addArgument("config", InputArgument.OPTIONAL, "Name of the person to greet")
//     ;
//   }

//   override protected int execute(Input input, Output output)
//   {
//     string name = input.getArgument("config");
//     if (name is null) {
//       name = "stranger";
//     }

//     parseConfig(name);
//     // initLog();

//     DatabaseBootstrap(_config);
//     startApp();

//     return 0;
//   }

//   override protected void interact(Input input, Output output)
//   {
//     if (input.getArgument("config") is null) {
//        input.setArgument("config", configPath);
//        output.writeln(format("Not specified config use default config %s", configPath));
//     }
//     else
//     {
//       output.writeln(format("start app with config : %s", input.getArgument("config")));
//     }
//   }

//   private void parseConfig(string path)
//   {
//     string data = readText(path);
//     _config = toOBJ!LogicConfig(parseJSON(data));
//     Config.getInstance().setConfig(_config);
//   }

// //   private void initLog()
// //   {
// //     LogConf conf;
// //     conf.fileName = Config.getInstance().getConfig().log;
// //     logLoadConf(conf);
// //   }

//   private void startApp()
//   {
//     MessageTransportServer server = new MessageTransportServer(LogicServerName);

//     server.addChannel(new TcpServerChannel(cast(ushort)_config.tcpport));

//     server.acceptor((TransportContext ctx) {
//       infof("New connection: id=%d", ctx.id());
//     });

//     server.start();
//   }

// }

